//
//  Extension+NSDate.swift
//  WBBeta1
//
//  Created by wustzhy on 16/8/15.
//  Copyright © 2016年 Yestin. All rights reserved.
//


import UIKit
/*
使用NSDateFormatter 和NSCalendar.currentCalendar()  注意问题
- 它们的创建和销毁 对ios的性能影响很大 所以不要重复创建或者销毁
- 解决办法 创建一个全局的(Swift做法)  oc中可以使用单例

*/

//时间格式化类
private let df = NSDateFormatter()
//日历类
let calendar = NSCalendar.currentCalendar()

extension NSDate {
    
    class func getSinaDate(createAt: String) -> NSDate {
//        “Thu Jun 06 1985 00:00:00 GMT+0800 (中国标准时间)”
        df.dateFormat = "EEE MMM dd HH:mm:ss z yyyy"
        df.locale = NSLocale(localeIdentifier: "en_US")
        let sinaDate = df.dateFromString(createAt)!
        return sinaDate
    }

    //微博时间 提取
    var sinaDateDescription:String {
        
        let isThisYear = sinaIsThisYear(self)
        //如果是今天
        if isThisYear {
            if calendar.isDateInToday(self) {
                // 当前时间和微博时间 求差
                let s = Int(NSDate().timeIntervalSinceDate(self))
                if s < 60 {
                     return "刚刚"
                }else if s >= 60 && s < 3600 {
                    return "\(s/60)分钟前"
                }else {
                    return "\(s/3600)小时前"
                }
            }//如果是 昨天
            else if calendar.isDateInYesterday(self) {
                df.dateFormat = "昨天 HH:mm"
            }//其它
            else{
                df.dateFormat = "MM月dd日 HH:mm"
            }
            
        }//如果不是今年
        else{
            df.dateFormat = "yyyy年MM月dd日 HH:mm"
        }
        return df.stringFromDate(self)
        
    }
    //判断 是否是今年
    func sinaIsThisYear(sinaDate:NSDate) -> Bool {
        df.dateFormat = "yyyy"
        df.locale = NSLocale(localeIdentifier: "en_US")
        let sinaTimerStr = df.stringFromDate(sinaDate)//微博时间
        let currentTimeStr = df.stringFromDate(NSDate())//当前时间
        return sinaTimerStr == currentTimeStr
    }
}
